#include "junix.h"
using namespace std;

struct A
{
	A(int ii=0,int jj=0)
		:i(ii),j(jj)
	{ }

	int i;
	int j;

	void print()
	{
		cout<<"("<<i<<","<<j<<")"<<endl;
	}
};

int main(int argc, char **argv)
{
	vector<A> vi;
	for( int i=0;i<100;i++)
	{
		vi.push_back(A(i,i));
	}

	/*
	transform( vi.begin(), vi.end(),
			vi.begin(),
			boost::bind(std::negate<int>(),
				boost::bind(&A::i, _1)));
	*/

	/*
	for_each( vi.begin(), vi.end(),
			boost::bind(std::negate<int>(),
				boost::bind(&A::i, _1)));
	*/


	for_each(vi.begin(),vi.end(),
			boost::bind(&A::print,_1));
}
